#ifndef __CARIOU_LINARD_RAYTRACER_HH__
#define __CARIOU_LINARD_RAYTRACER_HH__

#include "film.h"
#include "camera.h"
#include "scene.h"
#include "loader.h"


class RayTracer //valid
{
    protected:

        Camera camera;
        Film  film;
        Scene scene;
        unsigned int level;
        bool         renderShadow;

    public:

        RayTracer(unsigned int, unsigned int, unsigned int,bool);
        virtual ~RayTracer();

        virtual void setCameraSettings(double,double,double,double,double,double,double,double);
        virtual void setAnaglyphSettings(const Color &, const Color &, const double &);

        virtual void render(const std::string &, const Color &mask=Color(1.0,1.0,1.0), const double &eyeDist=0.0) const;
        virtual void load(const std::string &);

};

#endif
